<?php
/**
 * Modelo CRUD de Categoria
 * @author Thiago Carvalho @ PC4 Team
 * @rev Emanuel Melo
 */
class PC4_Crud_Categoria extends PC4_Crud_Abstrato {
	
	/**
	 * Construtor
	 */
	public function __construct($tabela = 'categorias') {
		parent::__construct($tabela);
	}
	
	/**
	 * Faz a validação dos campos
	 * @param array(nome_campo,valor) $campos
	 * @param int $id
	 * @return array $erros para cada campo que não passou na validação
	 */
	function valida($campos, $id = 0) {
		$erros = array();
		
		//Esta verificacao e feita para no caso de um novo registro
		//nao ser possivel inserir registros iguais
		if($id == 0) {
			$verificacao = $this->ve($campos['nome'], 'nome');
			if(!empty($verificacao)){
				$erros[] = 'Este registro j&aacute; existe.';
			}
		}

		return $erros;
	}
	
	/**
	 * Apaga o registro e aqueles que estão relacionados a ele
	 * @param string $valor	(valor de referência para o delete da própria tabela e para ser usado como FK)
	 * @param string $campo	(campo da tabela)
	 * @param string $campo (tabela relacionada)
	 * @param string $fk	(campo da tabela relacionada)
	 * @return parent::apaga return
	 */
	public function apagaComFk($valor, $campo = 'id', $tabelaRelacionada, $fk){
		$this->db->delete($tabelaRelacionada, array($fk => $valor));
		parent::apaga($valor, $campo);
	}
	
}
?>